#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/time.h>
#include <signal.h>

int main()
{
    sigset_t pend, sigproc;
    
    // 设置阻塞信号，等待按键产生信号
    sigemptyset(&sigproc);

    sigaddset(&sigproc, SIGINT);
    sigaddset(&sigproc, SIGQUIT);
    sigaddset(&sigproc, SIGKILL);   // 9 号进程不允许被阻塞

    // 设置阻塞信号集
    // int sigprocmask(int how, const sigset_t *set, sigset_t *oldset)
    sigprocmask(SIG_BLOCK, &sigproc, NULL);


    // 循环打印未决信号集
    while(1) {
        sigpending(&pend);
    
        for(int i = 1; i < 32; i++) {
            if(sigismember(&pend, i) == 1) {
                printf("1");
            } else {
                printf("0");
            }
        }

        printf("\n");
        sleep(2);
    }

    return 0;
}

